/*
 * www.7yangche.com Inc.
 * Copyright (c) 2014 All Rights Reserved.
 */
package cbh.tool.mybatis.crud;


import cbh.tool.mybatis.page.Page;

import java.util.List;
import java.util.Map;


/**
 * @author cyzhang
 *
 */
public interface CrudRead<E> {

    /**
     * 进行 count 记录。
     */
    Long count(Object parameter);

    /**
     * 查询所有记录，慎用。
     */
    List<E> all();

    /**
     * 根据条件查询记录。
     */
    List<E> select(Object parameter);

    /**
     * 根据条件查询一条记录。
     */
    E one(Object parameter);

    /**
     * 
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<E> page(int pageNum, int pageSize);

    /**
     * 根据条件进行分页。
     */
    Page<E> page(int pageNum, int pageSize, Map<String, ? extends Object> parameter);
    
}
